package br.com.sisgerenciamento.dto.locacao;

import java.io.Serializable;
import java.security.NoSuchAlgorithmException;
import java.util.Date;

import br.com.sisgerenciamento.dto.usuario.UsuarioDTO;
import br.com.sisgerenciamento.model.locacao.LocacaoVO;
import br.com.sisgerenciamento.model.locacao.StatusLocacaoEnum;
import br.com.sisgerenciamento.utilidades.TreatDate;

public class LocacaoDTO implements Serializable{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = -4536204997878291445L;
	private Long codigo;
	private String descricao;
	private Integer status;
	private Date dataHoraEntrega;
	private Long codigoPedido;
	private String nomeCliente;
	private Long codigoUsuario;
	private UsuarioDTO usuario;
	
	public LocacaoVO getVO() throws NoSuchAlgorithmException{
		LocacaoVO vo = new LocacaoVO();
		vo.setCodigo(getCodigo());
		vo.setDescricao(getDescricao());
		vo.setDataHoraEntrega(getDataHoraEntrega());
		vo.setStatus(StatusLocacaoEnum.getByValor(getStatus()));
		vo.setUsuario(getUsuario().getVO());
		return vo;
	}
	
	public Long getCodigo() {
		return codigo;
	}
	public void setCodigo(Long codigo) {
		this.codigo = codigo;
	}
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public Integer getStatus() {
		return status;
	}
	public void setStatus(Integer status) {
		this.status = status;
	}
	public Date getDataHoraEntrega() {
		return dataHoraEntrega;
	}
	public void setDataHoraEntrega(Date dataHoraEntrega) {
		this.dataHoraEntrega = dataHoraEntrega;
	}
	public String getDataHoraEntregaFormatada() {
		if(dataHoraEntrega != null){
			return TreatDate.format("dd/MM/yyyy HH:mm", dataHoraEntrega);
		}
		return "";
	}
	public UsuarioDTO getUsuario() {
		return usuario;
	}
	public void setUsuario(UsuarioDTO usuario) {
		this.usuario = usuario;
	}

	public Long getCodigoPedido() {
		return codigoPedido;
	}

	public void setCodigoPedido(Long codigoPedido) {
		this.codigoPedido = codigoPedido;
	}

	public String getNomeCliente() {
		return nomeCliente;
	}

	public void setNomeCliente(String nomeCliente) {
		this.nomeCliente = nomeCliente;
	}

	public Long getCodigoUsuario() {
		return codigoUsuario;
	}

	public void setCodigoUsuario(Long codigoUsuario) {
		this.codigoUsuario = codigoUsuario;
	}
}
